Printer model recommendation mechanism

ABSTRACT

A system is described. The system includes a memory to store print performance recommendation logic, including a file handler, a printer acquisition module and a recommendation engine, and one or more processors to execute the file handler to receive print data, printer acquisition module to receive printer configuration information including performance data for each of a plurality of printers and the recommendation engine to generate a printer recommendation including one or more of the plurality of printers based on the print data and the printer configuration information.

FIELD

This invention relates generally to the field of printing systems. Moreparticularly, the invention relates to providing model recommendationsfor printing systems.

BACKGROUND

Entities with substantial printing demands typically implement ahigh-speed production printer for volume printing (e.g., one hundredpages per minute or more). Production printers may includecontinuous-forms printers that print on a web of print media stored on alarge roll. A production printer typically includes a localized printcontroller that controls the overall operation of the printing system,and a print engine that includes one or more printhead assemblies, whereeach assembly includes a printhead controller and a printhead (or arrayof printheads).

High-performance production printers represent a significant monetaryinvestment. Thus, potential customers want to ensure that a printer willperform well on specific sets of documents prior to finalizing apurchase. Currently, print samples and test data are submitted bypotential customers to various printer vendors to determine a printerthat best fits the customer's needs. However, sending samples back andforth to printer vendors is impracticable and costly, in both time andresources.

Accordingly, a mechanism to efficiently recommend a high-speedproduction printer that meets a customer's performance and qualitydemands based on historical data obtained with similar jobs on actualprinters is desired.

SUMMARY

In one embodiment, a method is disclosed. The method includes receivingprint data, receiving printer configuration information includingperformance data for each of a plurality of printers and generating aprinter recommendation including one or more of the plurality ofprinters based on the print data and the printer configurationinformation.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example, and not by way oflimitation, in the figures of the accompanying drawings in which likereference numerals refer to similar elements.

FIG. 1 illustrates one embodiment of a printing network.

FIG. 2 illustrates one embodiment of a computing device employing aprinter recommendation mechanism.

FIG. 3 illustrates another embodiment of a printer recommendationmechanism implemented in a cloud computing environment.

FIG. 4 is a flow diagram illustrating one embodiment of a recommendationprocess.

FIG. 5 is a flow diagram illustrating one embodiment of a process toperform a printer recommendation.

FIG. 6 illustrates a computing device suitable for implementingembodiments of the present disclosure.

DETAILED DESCRIPTION

A printer recommendation mechanism implemented to recommend a high-speedproduction printer model is described. In the following description, forthe purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be apparent, however, to one skilled in the art that the presentinvention may be practiced without some of these specific details. Inother instances, well-known structures and devices are shown in blockdiagram form to avoid obscuring the underlying principles of the presentinvention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

Throughout this document, terms like “logic”, “component”, “module”,“engine”, “model”, and the like, may be referenced interchangeably andinclude, by way of example, software, hardware, and/or any combinationof software and hardware, such as firmware. Further, any use of aparticular brand, word, term, phrase, name, and/or acronym, should notbe read to limit embodiments to software or devices that carry thatlabel in products or in literature external to this document.

It is contemplated that any number and type of components may be addedto and/or removed to facilitate various embodiments including adding,removing, and/or enhancing certain features. For brevity, clarity, andease of understanding, many of the standard and/or known components,such as those of a computing device, are not shown or discussed here. Itis contemplated that embodiments, as described herein, are not limitedto any particular technology, topology, system, architecture, and/orstandard and are dynamic enough to adopt and adapt to any futurechanges.

FIG. 1 illustrates one embodiment of a printer network 100. Network 100includes a printer 130 and a computing device 105. In one embodiment,printer 130 and computing device 105 communicate via a network 115.However, the network may have other configurations. For example, in someembodiments computing device 105 may be implemented in printer 130.According to one embodiment, computing device 105 serves as a hostmachine for hosting printer recommendation mechanism 110 that includes acombination of any number and type of components for facilitating printperformance recommendation at computing devices, such as computingdevice 105.

Computing device 105 may include an operating system (OS) 106 serving asan interface between hardware and/or physical resources of the computerdevice 100 and a user. Computing device 105 may further include one ormore processors 102, memory devices 104, network devices, drivers, orthe like, as well as input/output (I/O) sources 108, such astouchscreens, touch panels, touch pads, virtual or regular keyboards,virtual or regular mice, etc.

According to one embodiment, printer recommendation mechanism 110facilitates a customer recommendation for a high-speed productionprinter based on a data file (e.g., print data) provided by a customerand printer configuration information including data collected from avast quantity of printers. In such an embodiment, recommendationmechanism 110 implements one or more supervised machine learning modelsto provide a recommendation by comparing components of the customer datafile to printer configuration information, which may include previouslyprocessed data files and corresponding printers recommended for the datafiles. In a further embodiment, raw document information (e.g., objects,attributes, metadata, etc.) is extracted from print data and used asinput to the model.

Printer 130 includes a control unit 150 and a print engine 158.According to one embodiment, control unit 150 processes and rendersobjects received in print job data 120 and provides sheet maps forprinting to print engine 158. Control unit (e.g., DFE or digital frontend) 150 is implemented to process image objects received at controlunit 150 by a raster image processor (RIP) to convert an image describedin a vector graphics format (e.g., shapes) into a raster image (e.g.,pixels) that is to be stored as scan line data in a memory array (notshown) for output to print engine 158.

FIG. 2 illustrates a printer recommendation mechanism 110 employed atcomputing device 100. In one embodiment, printer recommendationmechanism 110 may include any number and type of components, such as:printer acquisition module 201, file handler logic 202, data collectionmodule 203, recommendation engine 204 and reporting module 205.

It is contemplated that any number and type of components 201-205 ofprinter recommendation mechanism 110 may not necessarily be implementedat a single computing device and may be allocated among or distributedbetween any number and type of computing devices. Thus, anothercomputing device may also include printer recommendation mechanism 110to perform functionality for one or more of components 201-206.Moreover, the components of printer recommendation mechanism 110 may bedistributed among multiple computing devices 205 within a cloudcomputing environment. FIG. 3 illustrates an embodiment of a printerrecommendation mechanism 110 implemented in a cloud computingenvironment 300.

According to one embodiment, printer acquisition module 201 receivesprinter configuration information. In one embodiment, printerconfiguration information includes data from printers accessible (e.g.,from around the world) by printer recommendation mechanism 110. In suchan embodiment, the printer configuration information may be received atcloud computing environment 300 from printers associated with variousinternational printer vendors and/or customers. In a further embodiment,the printer data may include performance data, which may include:resource usage (e.g., ink usage, paper), print processing time, printerlocation, printer temperature, printer environment (e.g., temperatureand humidity), printer settings for print jobs, frequency of errors andprint quality.

In one embodiment, print quality may be measured based on user feedbackregarding whether the received quality of print jobs have previously metexpectations. Thus, ratings of expected quality are collected by printeracquisition module 201. In another embodiment, quality may be measuredby receiving a scanned image from a printer and analyzing the image forquality factors (e.g., color coverage, bleeds, blemish, etc.) incomparison with a received data file. In a further embodiment, printeracquisition module 201 may receive information regarding printercapabilities, such as supported paper sizes and weights, finishingoptions. Once acquired, the printer data is saved to database 210.

File handler logic 202 receives print data (e.g., one or more print jobsand corresponding job tickets, if available) as input data. Uponreceipt, file handler logic 202 extracts print data from a print jobdata file. In one embodiment, the extracted print data may includeattributes, including images, dots per inch (dpi) of images, fonts, sizeof pages, plexing, media calls, etc. The extracted data may also beelements extracted from a print job's data structure (e.g., for AdvancedFunction Presentation (AFP) and Postscript (PS) jobs). Once data isextracted, file handler logic 202 saves the data corresponding to thefile to database 210. Additionally, file handler logic 202 may alsoreceive environmental data associated with an environment at which thereceived print data is to be printed.

According to one embodiment, data collection logic 203 may periodicallycollect the printer data from the various printers. Thus, accumulatedprinter data may be used to determine how a particular printer performswith data streams of different complexity and structure; and how theprinter performs over time and in different conditions (e.g.,temperature and humidity, hours running). Such accumulated printer dataand information regarding the data structure of jobs the printer hasbeen printing enables a comparative analysis of a newly received datafile received to for printer model recommendation.

According to one embodiment, recommendation engine 204 provides aprinter model recommendation based on a comparison of the extractedprint data and the acquired printer configuration information frompotentially a vast quantity of printers. In such an embodiment,recommendation engine 204 analyzes one or more attributes included inthe print data to determine job requirements (e.g., paper types, colorvs mono, etc.), as well as the actual data to be printed. Additionally,recommendation engine 204 analyzes the printer configuration informationto determine the printer capabilities for each available printer.Recommendation engine 204 further continues the analysis by generating amodel indicating how the print data would be printed on various printersbased on the job requirements and the printer capabilities for eachavailable printer.

In a further embodiment, recommendation engine 204 may consider thevariability in the measurements provided by different print shops. Forexample, for two print shops having multiple model 123 printers, oneprint shop's ink usage numbers for their 123 printers may always be 30%higher than the ink usage numbers from the 123 printers at another shop.This type of variability can itself become a factor contributing to therecommendation (compared with another model of printer where theperformance is more consistent across printers at different shops)

FIG. 4 is a flow diagram illustrating one embodiment of a process 400 torecommend one or more printer models. Process 400 may be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, programmable logic, etc.), software (such as instructions run ona processing device), or a combination thereof. In one embodiment,process 400 may be performed by recommendation engine 204. The process400 is illustrated in linear sequences for brevity and clarity inpresentation; however, it is contemplated that any number of them can beperformed in parallel, asynchronously, or in different orders. Forbrevity, clarity, and ease of understanding, many of the detailsdiscussed with reference to FIGS. 1-3 are not discussed or repeatedhere.

At processing block 410, the extracted print data is examined forparticular job requirements (e.g., all printers that do not match baserequirements (media size and type (e.g., glossy B4 size), duplex, fullbleed, etc.). At processing block 420, printers that do not match thebase print job requirements are eliminated. At processing block 430, theremaining printers are compared.

In one embodiment, the comparison includes an analysis of thedifferences of the remaining printers. For instance, of two printersbeing compared, printer 1 may have an average quality score of 5 (on ascale of 1 to 5) (e.g., based on always matching expected quality andimage scans never show blemishes or poor coverage), while printer 2 mayhave an average quality score of 2 (e.g., several misses on qualityexpected and never a scan of blemishes). Further, printer 1 may have acost score of 1 (e.g., each page cost on average $10, compared to allother printers in this pool that is the worst), while printer 2 may havea cost score of 4 (e.g., each page cost on average of $2). This analysismay be presented to a user, who could consider the details of the scoresabove. Such an analysis may be performed for all measurements.

Reporting module 205 generates a presentation report that includes thecost scores for the various printer measurements that are beingcompared, as well as any additional information that is desirable toinclude in the presentation (e.g. printer configurations, performancerequirements, and/or print jobs evaluated). Computing device 105 mayalso include communication logic 265 to facilitate communication withcontrol unit 150 at printer 130 over network 115. In one embodiment,reporting module 206 may transmit the presentation report to printer 130to generate a hard copy of the report.

FIG. 5 is a flow diagram illustrating one embodiment of a process 500 toperform a printer recommendation. Process 500 may be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, programmable logic, etc.), software (such as instructions run ona processing device), or a combination thereof. In one embodiment,process 500 may be performed by printer recommendation mechanism 110.The process 500 is illustrated in linear sequences for brevity andclarity in presentation; however, it is contemplated that any number ofthem can be performed in parallel, asynchronously, or in differentorders. For brevity, clarity, and ease of understanding, many of thedetails discussed with reference to FIGS. 1-4 are not discussed orrepeated here.

At processing blocks 502 and 504, print data and environmental data, andprinter configuration information are received, respectively. Atprocessing block 508, data is extracted from the print data prior to beprovided for recommendation use. At processing block 510, arecommendation process, as disclosed above in FIG. 4, is performed. Atprocessing block 520, a report including one or more printer comparisonsand analysis may be generated and provided via a desired format.

FIG. 6 illustrates a computer system 900 on which computing device 105and/or printer 130 may be implemented. Computer system 900 includes asystem bus 920 for communicating information, and a processor 910coupled to bus 920 for processing information.

Computer system 900 further comprises a random-access memory (RAM) orother dynamic storage device 925 (referred to herein as main memory),coupled to bus 920 for storing information and instructions to beexecuted by processor 910. Main memory 925 also may be used for storingtemporary variables or other intermediate information during executionof instructions by processor 910. Computer system 900 also may include aread only memory (ROM) and or other static storage device 926 coupled tobus 920 for storing static information and instructions used byprocessor 910.

A data storage device 927 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to computer system 900 forstoring information and instructions. Computer system 900 can also becoupled to a second I/O bus 950 via an I/O interface 930. A plurality ofI/O devices may be coupled to I/O bus 950, including a display device924, an input device (e.g., keyboard (or an alphanumeric input device)923 and or a cursor control device 922). The communication device 921 isfor accessing other computers (servers or clients). The communicationdevice 921 may comprise a modem, a network interface card, or otherwell-known interface device, such as those used for coupling toEthernet, token ring, or other types of networks.

Embodiments may be implemented as any or a combination of: one or moremicrochips or integrated circuits interconnected using a parent board,hardwired logic, software stored by a memory device and executed by amicroprocessor, firmware, an application specific integrated circuit(ASIC), and/or a field programmable gate array (FPGA). The term “logic”may include, by way of example, software or hardware and/or combinationsof software and hardware.

Embodiments may be provided, for example, as a computer program productwhich may include one or more machine-readable media having storedthereon machine-executable instructions that, when executed by one ormore machines such as a computer, network of computers, or otherelectronic devices, may result in the one or more machines carrying outoperations in accordance with embodiments described herein. Amachine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs (Compact Disc-Read Only Memories), andmagneto-optical disks, ROMs, RAMs, EPROMs (Erasable Programmable ReadOnly Memories), EEPROMs (Electrically Erasable Programmable Read OnlyMemories), magnetic or optical cards, flash memory, or other type ofmedia/machine-readable medium suitable for storing machine-executableinstructions.

Moreover, embodiments may be downloaded as a computer program product,wherein the program may be transferred from a remote computer (e.g., aserver) to a requesting computer (e.g., a client) by way of one or moredata signals embodied in and/or modulated by a carrier wave or otherpropagation medium via a communication link (e.g., a modem and/ornetwork connection).

The drawings and the forgoing description give examples of embodiments.Those skilled in the art will appreciate that one or more of thedescribed elements may well be combined into a single functionalelement. Alternatively, certain elements may be split into multiplefunctional elements. Elements from one embodiment may be added toanother embodiment. For example, orders of processes described hereinmay be changed and are not limited to the manner described herein.Moreover, the actions in any flow diagram need not be implemented in theorder shown; nor do all of the acts necessarily need to be performed.Also, those acts that are not dependent on other acts may be performedin parallel with the other acts. The scope of embodiments is by no meanslimited by these specific examples. Numerous variations, whetherexplicitly given in the specification or not, such as differences instructure, dimension, and use of material, are possible. The scope ofembodiments is at least as broad as given by the following claims.

1. At least one non-transitory computer readable medium havinginstructions stored thereon, which when executed by one or moreprocessors, cause the processors to: receive a print job data file;extract print data from the print job data file; receive printerconfiguration information including performance data for each of aplurality of printers; and generate a printer model recommendationincluding one or more of the plurality of printers based on the printdata and the printer configuration information, comprising: analyzingone or more attributes included in the print data to determine print jobrequirements; analyzing the printer configuration information todetermine printer capabilities for each of the plurality of printers;generating a model based on the print job requirements and the printercapabilities indicating how the print data would be printed on each ofthe plurality of printers; and comparing a first set of the plurality ofprinters having capabilities that match the print job requirements byanalyzing one or more differences between the performance data of eachprinter in the first set of the plurality printers; and display theprinter capabilities and the one or more differences between theperformance data of each printer in the first set of the pluralityprinters.
 2. (canceled)
 3. (canceled)
 4. The computer readable medium ofclaim 10, having instructions stored thereon, which when executed by theone or more processors, further cause the processors to transmit thereport to be printed.
 5. The computer readable medium of claim 1,wherein generating the printer model recommendation further comprisesanalyzing data to be printed.
 6. The computer readable medium of claim4, wherein generating the printer model recommendation furthercomprises: eliminating a second set of the plurality of printers havingcapabilities that do not match the print job requirements.
 7. (canceled)8. The computer readable medium of claim 1, wherein the performance datacomprises a print quality measurement.
 9. The computer readable mediumof claim 8, wherein the performance data further comprises one or moreof resource usage, print processing time, printer location, printertemperature, printer environment, printer settings and frequency oferrors.
 10. The computer readable medium of claim 1, having instructionsstored thereon, which when executed by the one or more processors,further cause the processors to generate a report including the printermodel recommendation.
 11. A system comprising: a memory to store printerrecommendation logic, including: a file handler; a printer acquisitionmodule; and a recommendation engine; and one or more processors toexecute the file handler to receive a print job data file and extractprint data from the print job data file, printer acquisition module toreceive printer configuration information including performance data foreach of a plurality of printers and the recommendation engine togenerate a printer model recommendation including one or more of theplurality of printers based on the print data and the printerconfiguration information comprising analyzing one or more attributesincluded in the print data to determine print job requirements,analyzing the printer configuration information to determine printercapabilities for each of the plurality of printers, generating a modelbased on the print job requirements and the printer capabilitiesindicating how the print data would be printed on each of the pluralityof printers and comparing a first set of the plurality of printershaving capabilities that match the print job requirements by analyzingone or more differences between the performance data of each printer inthe first set of the plurality printers; and a display device to displaythe printer capabilities and the one or more differences between theperformance data of each printer in the first set of the pluralityprinters.
 12. (canceled)
 13. (canceled)
 14. The system of claim 20,further comprising a printer to print the report.
 15. The system ofclaim 11, wherein generating the printer model recommendation furthercomprises analyzing data to be printed.
 16. The system of claim 15,wherein generating the printer model recommendation further compriseseliminating a second set of the plurality of printers havingcapabilities that do not match the print job requirements. 17.(canceled)
 18. The system of claim 11, wherein the performance datacomprises a print quality measurement.
 19. The system of claim 18,wherein the performance data further comprises one or more of resourceusage, print processing time, printer location, printer temperature,printer environment, printer settings and frequency of errors.
 20. Thesystem of claim 11, wherein the memory further stores a reporting moduleand the processor executes the reporting module to generate a reportincluding the printer model recommendation.